package com.xtm.exercise.base.ifelseTest;

import org.junit.Test;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.Scanner;
import java.util.stream.Collectors;

public class Z06IfElseDemo {

    /**
     死循环： 也就是循环中的条件永远为true，死循环的是永不结束的循环。例如：while(true){}。
     **/
    @Test
    public void test0() {
        int sum = 0;//用来记录累加和
        int i = 1;
        while (true) {

        }
    }

    @Test
    public void test11(){
        int sum = 0;
        if(sum == 1){
            System.out.println(sum);
        } else if(sum == 0){
            System.out.println(sum);
        }
    }

    /**
     * 使用while循环，完成求1-999之间3的整数倍的和
     */
    @Test
    public void test01() {
        int sum = 0;//用来记录累加和
        int i = 1;
        while (i <= 999) {
            if (i % 3 == 0) {
                sum += i;//累加求和
            }
            i++;
        }
        System.out.println("1-999之间3的整数倍的和为: " + sum);
    }

    /**
     * 要求：
     * 定义3个重载方法，求2个，3个，4个整数的平均数 并分别在main方法中调用
     */
    @Test
    public void test04(){
        System.out.println(getAvg(10, 20));
        System.out.println(getAvg(10, 20,30));
        System.out.println(getAvg(10, 20,30,40));
    }
    public static double getAvg(int a,int b){
        return (a+b)/2;
    }
    public static double getAvg(int a,int b,int c){
        return (a+b+c)/3;
    }
    public static double getAvg(int a,int b,int c,int d){
        return (a+b+c+d)/4;
    }

    /**
     嵌套循环
     所谓嵌套循环 ，是指一个循环的循环体是另一个循环。比如for循环里面还有一个for循环，就是嵌套循环。总
     共的循环次数=外循环次数*内循环次数

     for(初始化表达式①; 循环条件②; 步进表达式⑦) {
         for(初始化表达式③; 循环条件④; 步进表达式⑥) {
         执行语句⑤;
         }
     }

     嵌套循环执行流程：
     执行顺序：①②③④⑤⑥ >④⑤⑥>⑦②③④⑤⑥>④⑤⑥
     外循环一次，内循环多次。
     比如跳绳：一共跳 5组，每组跳10个。5组就是外循环，10个就是内循环

     练习 ：使用嵌套循环，打印5*8的矩形
     **/
    @Test
    public void test03(){
        //5*8的矩形，打印5行*号，每行8个
        //外循环5次，内循环8次
        for(int i = 0; i < 5; i++){
            for(int j = 0; j < 8; j++){
                //不换行打印星号
                System.out.print("*");
            }
            //内循环打印8个星号后，需要一次换行
            System.out.println();
        }
    }

}
